package ecustom.clients.k3client.entities;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

import ecustom.common.util.CustomUtil;

/**
* @author 作者:Gcc
* @createDate 创建时间：Jul 31, 2023 12:45:46 PM
* 
* 应付单
* 
*/
@JsonAutoDetect(
		fieldVisibility = JsonAutoDetect.Visibility.ANY,
		getterVisibility = JsonAutoDetect.Visibility.NONE)
public class ERPPPayableReq {

	private String IsAutoSubmitAndAudit;
	private Boolean IsDeleteEntry;
	private Model Model;

	public Model getModel() {
		if(CustomUtil.isBlank(Model)) return Model = new Model();
		return Model;
	}
	public void setModel(Model model) {
		Model = model;
	}
	public String getIsAutoSubmitAndAudit() {
		return IsAutoSubmitAndAudit;
	}
	public void setIsAutoSubmitAndAudit(String isAutoSubmitAndAudit) {
		IsAutoSubmitAndAudit = isAutoSubmitAndAudit;
	}
	public Boolean getIsDeleteEntry() {
		return IsDeleteEntry;
	}
	public void setIsDeleteEntry(Boolean isDeleteEntry) {
		IsDeleteEntry = isDeleteEntry;
	}


	@JsonAutoDetect(
			fieldVisibility = JsonAutoDetect.Visibility.ANY,
			getterVisibility = JsonAutoDetect.Visibility.NONE)
	public static class Model {
		private Integer FID;	// 实体主键，有实体主键为修改操作，没有则新建
		private Map<String, Object> FBillTypeID;	// 单据类型
		private String FBiIINo;	// 单据编号
		private String FDATE;	// 单据时间
		private String FENDDATE_H;	// 到期日
		private Map<String, Object> FSUPPLIERID;	// 供应商
		private Map<String, Object> FCURRENCYID;	// 币别
		private Boolean FISPRICEEXCLUDETAX;	// 默认，true
		private String FBUSINESSTYPE;	// 业务类型
		private Boolean FISTAX;	// 按含税单价录入
		private Map<String, Object> FSETTLEORGID;	// 结算组织
		private Map<String, Object> FPAYORGID;	// 付款组织
		private String FSetAccountType;	// 立账类型
		private String FAP_Remark;	// 备注
		private Map<String, Object> FPURCHASEDEPTID;	// 采购部门
		private String FCancelStatus;	// 作废状态，默认：A
		private String F_SZXY_OARequestID;	// OAID
		
		private List<FEntityDetail> FEntityDetail;
		
		private FsubHeadSuppiler FsubHeadSuppiler;	// 表头供应商
		private FsubHeadFinc FsubHeadFinc;	// 表头财务
		
		//private String FOABillNo;	// OA流程编号
		
		
		
		public Integer getFID() {
			return FID;
		}
		public String getFBiIINo() {
			return FBiIINo;
		}
		public void setFBiIINo(String fBiIINo) {
			FBiIINo = fBiIINo;
		}
		public String getF_SZXY_OARequestID() {
			return F_SZXY_OARequestID;
		}
		public void setF_SZXY_OARequestID(String f_SZXY_OARequestID) {
			F_SZXY_OARequestID = f_SZXY_OARequestID;
		}
		public void setFID(Integer fID) {
			FID = fID;
		}
		public Map<String, Object> getFBillTypeID() {
			if(CustomUtil.isBlank(FBillTypeID)) return FBillTypeID = new HashMap<String, Object>();
			return FBillTypeID;
		}
		public void setFBillTypeID(Map<String, Object> fBillTypeID) {
			FBillTypeID = fBillTypeID;
		}
		public String getFDATE() {
			return FDATE;
		}
		public void setFDATE(String fDATE) {
			FDATE = fDATE;
		}
		public String getFENDDATE_H() {
			return FENDDATE_H;
		}
		public void setFENDDATE_H(String fENDDATE_H) {
			FENDDATE_H = fENDDATE_H;
		}
		public Map<String, Object> getFSUPPLIERID() {
			if(CustomUtil.isBlank(FSUPPLIERID)) return FSUPPLIERID = new HashMap<String, Object>();
			return FSUPPLIERID;
		}
		public void setFSUPPLIERID(Map<String, Object> fSUPPLIERID) {
			FSUPPLIERID = fSUPPLIERID;
		}
		public Map<String, Object> getFCURRENCYID() {
			if(CustomUtil.isBlank(FCURRENCYID)) return FCURRENCYID = new HashMap<String, Object>();
			return FCURRENCYID;
		}
		public void setFCURRENCYID(Map<String, Object> fCURRENCYID) {
			FCURRENCYID = fCURRENCYID;
		}
		public Boolean getFISPRICEEXCLUDETAX() {
			return FISPRICEEXCLUDETAX;
		}
		public void setFISPRICEEXCLUDETAX(Boolean fISPRICEEXCLUDETAX) {
			FISPRICEEXCLUDETAX = fISPRICEEXCLUDETAX;
		}
		public String getFBUSINESSTYPE() {
			return FBUSINESSTYPE;
		}
		public void setFBUSINESSTYPE(String fBUSINESSTYPE) {
			FBUSINESSTYPE = fBUSINESSTYPE;
		}
		public Boolean getFISTAX() {
			return FISTAX;
		}
		public void setFISTAX(Boolean fISTAX) {
			FISTAX = fISTAX;
		}
		public Map<String, Object> getFSETTLEORGID() {
			if(CustomUtil.isBlank(FSETTLEORGID)) return FSETTLEORGID = new HashMap<String, Object>();
			return FSETTLEORGID;
		}
		public void setFSETTLEORGID(Map<String, Object> fSETTLEORGID) {
			FSETTLEORGID = fSETTLEORGID;
		}
		public Map<String, Object> getFPAYORGID() {
			if(CustomUtil.isBlank(FPAYORGID)) return FPAYORGID = new HashMap<String, Object>();
			return FPAYORGID;
		}
		public void setFPAYORGID(Map<String, Object> fPAYORGID) {
			FPAYORGID = fPAYORGID;
		}
		public String getFSetAccountType() {
			return FSetAccountType;
		}
		public void setFSetAccountType(String fSetAccountType) {
			FSetAccountType = fSetAccountType;
		}
		public String getFAP_Remark() {
			return FAP_Remark;
		}
		public void setFAP_Remark(String fAP_Remark) {
			FAP_Remark = fAP_Remark;
		}
		public Map<String, Object> getFPURCHASEDEPTID() {
			if(CustomUtil.isBlank(FPURCHASEDEPTID)) return FPURCHASEDEPTID = new HashMap<String, Object>();
			return FPURCHASEDEPTID;
		}
		public void setFPURCHASEDEPTID(Map<String, Object> fPURCHASEDEPTID) {
			FPURCHASEDEPTID = fPURCHASEDEPTID;
		}
		public String getFCancelStatus() {
			return FCancelStatus;
		}
		public void setFCancelStatus(String fCancelStatus) {
			FCancelStatus = fCancelStatus;
		}
		public List<FEntityDetail> getFEntityDetail() {
			if(CustomUtil.isBlank(FEntityDetail)) return FEntityDetail = new ArrayList<FEntityDetail>();
			return FEntityDetail;
		}
		public void setFEntityDetail(List<FEntityDetail> fEntityDetail) {
			FEntityDetail = fEntityDetail;
		}
		public FsubHeadSuppiler getFsubHeadSuppiler() {
			return FsubHeadSuppiler;
		}
		public void setFsubHeadSuppiler(FsubHeadSuppiler fsubHeadSuppiler) {
			FsubHeadSuppiler = fsubHeadSuppiler;
		}
		public FsubHeadFinc getFsubHeadFinc() {
			return FsubHeadFinc;
		}
		public void setFsubHeadFinc(FsubHeadFinc fsubHeadFinc) {
			FsubHeadFinc = fsubHeadFinc;
		}

	}
	
	/**
	 * 明细
	 * @author gccxzq
	 * @data Aug 21, 2023
	 */
	@JsonAutoDetect(
			fieldVisibility = JsonAutoDetect.Visibility.ANY,
			getterVisibility = JsonAutoDetect.Visibility.NONE)
	public static class FEntityDetail {
		private Integer FEntryID;	// 实体主键
		private Map<String, Object> FCOSTID;	// 费用项目编码
		private Map<String, Object> FCOSTDEPARTMENTID;	// 费用承担部门
		private String F_SZXY_Text1;	// 备注发票号
		private Double FNoTaxAmountFor_D;	// 不含税金额
		private Double FTAXAMOUNTFOR_D;	// 税额
		private Double FALLAMOUNTFOR_D;	// 价税合计
		private String FISINVOICEALLARRIVED;	// 已完全到票
		//private Map<String, Object> F_SZXY_FCATEGORYID;	// 产品类别
		private Map<String, Object> F_SZXY_FREIGHTNOTE;	// 运费说明
		private String FComment; 
		
		private Integer F_SZXY_INPUTTAXTYPE;	// 进项税类型 
		private Map<String, Object> F_SZXY_YSFS;	// 运输方式
		
		public String getFComment() {
			return FComment;
		}
		public void setFComment(String fComment) {
			FComment = fComment;
		}
		public Map<String, Object> getF_SZXY_FREIGHTNOTE() {
			if(CustomUtil.isBlank(F_SZXY_FREIGHTNOTE)) return F_SZXY_FREIGHTNOTE = new HashMap<String, Object>();
			return F_SZXY_FREIGHTNOTE;
		}
		public void setF_SZXY_FREIGHTNOTE(Map<String, Object> f_SZXY_FREIGHTNOTE) {
			F_SZXY_FREIGHTNOTE = f_SZXY_FREIGHTNOTE;
		}
		public Integer getFEntryID() {
			return FEntryID;
		}
		public void setFEntryID(Integer fEntryID) {
			FEntryID = fEntryID;
		}
//		public Map<String, Object> getF_SZXY_FCATEGORYID() {
//			if(CustomUtil.isBlank(F_SZXY_FCATEGORYID)) return F_SZXY_FCATEGORYID = new HashMap<String, Object>();
//			return F_SZXY_FCATEGORYID;
//		}
//		public void setF_SZXY_FCATEGORYID(Map<String, Object> f_SZXY_FCATEGORYID) {
//			F_SZXY_FCATEGORYID = f_SZXY_FCATEGORYID;
//		}
		public Map<String, Object> getFCOSTID() {
			if(CustomUtil.isBlank(FCOSTID)) return FCOSTID = new HashMap<String, Object>();
			return FCOSTID;
		}
		public void setFCOSTID(Map<String, Object> fCOSTID) {
			FCOSTID = fCOSTID;
		}
		public Map<String, Object> getFCOSTDEPARTMENTID() {
			if(CustomUtil.isBlank(FCOSTDEPARTMENTID)) return FCOSTDEPARTMENTID = new HashMap<String, Object>();
			return FCOSTDEPARTMENTID;
		}
		public void setFCOSTDEPARTMENTID(Map<String, Object> fCOSTDEPARTMENTID) {
			FCOSTDEPARTMENTID = fCOSTDEPARTMENTID;
		}
		public String getF_SZXY_Text1() {
			return F_SZXY_Text1;
		}
		public void setF_SZXY_Text1(String f_SZXY_Text1) {
			F_SZXY_Text1 = f_SZXY_Text1;
		}
		public String getFISINVOICEALLARRIVED() {
			return FISINVOICEALLARRIVED;
		}
		public void setFISINVOICEALLARRIVED(String fISINVOICEALLARRIVED) {
			FISINVOICEALLARRIVED = fISINVOICEALLARRIVED;
		}
		public Double getFNoTaxAmountFor_D() {
			return FNoTaxAmountFor_D;
		}
		public void setFNoTaxAmountFor_D(Double fNoTaxAmountFor_D) {
			FNoTaxAmountFor_D = fNoTaxAmountFor_D;
		}
		public Double getFTAXAMOUNTFOR_D() {
			return FTAXAMOUNTFOR_D;
		}
		public void setFTAXAMOUNTFOR_D(Double fTAXAMOUNTFOR_D) {
			FTAXAMOUNTFOR_D = fTAXAMOUNTFOR_D;
		}
		public Double getFALLAMOUNTFOR_D() {
			return FALLAMOUNTFOR_D;
		}
		public void setFALLAMOUNTFOR_D(Double fALLAMOUNTFOR_D) {
			FALLAMOUNTFOR_D = fALLAMOUNTFOR_D;
		}
		public Integer getF_SZXY_INPUTTAXTYPE() {
			return F_SZXY_INPUTTAXTYPE;
		}
		public void setF_SZXY_INPUTTAXTYPE(Integer f_SZXY_INPUTTAXTYPE) {
			F_SZXY_INPUTTAXTYPE = f_SZXY_INPUTTAXTYPE;
		}
		public Map<String, Object> getF_SZXY_YSFS() {
			if(CustomUtil.isBlank(F_SZXY_YSFS)) return F_SZXY_YSFS = new HashMap<String, Object>();
			return F_SZXY_FREIGHTNOTE;
		}
		public void setF_SZXY_YSFS(Map<String, Object> f_SZXY_YSFS) {
			F_SZXY_YSFS = f_SZXY_YSFS;
		}
	}
	
	/**
	 * 表头供应商
	 * @author gccxzq
	 * @data Aug 21, 2023
	 */
	@JsonAutoDetect(
			fieldVisibility = JsonAutoDetect.Visibility.ANY,
			getterVisibility = JsonAutoDetect.Visibility.NONE)
	public static class FsubHeadSuppiler{
		private String FEntryId;	// 实体主键
		private Map<String, Object> FTRANSFERID;	// 供货方
		private Map<String, Object> FChargeId;	// 收款方
		private Map<String, Object> FORDERID;	// 订货方
		
		public String getFEntryId() {
			return FEntryId;
		}
		public void setFEntryId(String fEntryId) {
			FEntryId = fEntryId;
		}
		public Map<String, Object> getFTRANSFERID() {
			if(CustomUtil.isBlank(FTRANSFERID)) return FTRANSFERID = new HashMap<String, Object>();
			return FTRANSFERID;
		}
		public void setFTRANSFERID(Map<String, Object> fTRANSFERID) {
			FTRANSFERID = fTRANSFERID;
		}
		public Map<String, Object> getFChargeId() {
			if(CustomUtil.isBlank(FChargeId)) return FChargeId = new HashMap<String, Object>();
			return FChargeId;
		}
		public void setFChargeId(Map<String, Object> fChargeId) {
			FChargeId = fChargeId;
		}
		public Map<String, Object> getFORDERID() {
			if(CustomUtil.isBlank(FORDERID)) return FORDERID = new HashMap<String, Object>();
			return FORDERID;
		}
		public void setFORDERID(Map<String, Object> fORDERID) {
			FORDERID = fORDERID;
		}
	}
	
	/**
	 * 表头财务：
	 * @author gccxzq
	 * @data Aug 21, 2023
	 */
	@JsonAutoDetect(
			fieldVisibility = JsonAutoDetect.Visibility.ANY,
			getterVisibility = JsonAutoDetect.Visibility.NONE)
	public static class FsubHeadFinc{
		private String FEntryId ;	// 实体主键
		private Double FTaxAmountFor ;	// 税额
		private Double FNoTaxAmountFor ;	// 不含税金额
		private Map<String, Object> FSettleTypeID ;	// 结算方式
		private Map<String, Object> FMAINBOOKSTDCURRID;	// 本位币
		private Map<String, Object> FEXCHANGETYPE ;	// 汇率类型
		private Double FExchangeRate ;	// 汇率
		private String FACCNTTIMEJUDGETIME ;	// 到期日计算日期
		
		public Map<String, Object> getFSettleTypeID() {
			if(CustomUtil.isBlank(FSettleTypeID)) return FSettleTypeID = new HashMap<String, Object>();
			return FSettleTypeID;
		}
		public void setFSettleTypeID(Map<String, Object> fSettleTypeID) {
			FSettleTypeID = fSettleTypeID;
		}
		public Map<String, Object> getFMAINBOOKSTDCURRID() {
			if(CustomUtil.isBlank(FMAINBOOKSTDCURRID)) return FMAINBOOKSTDCURRID = new HashMap<String, Object>();
			return FMAINBOOKSTDCURRID;
		}
		public void setFMAINBOOKSTDCURRID(Map<String, Object> fMAINBOOKSTDCURRID) {
			FMAINBOOKSTDCURRID = fMAINBOOKSTDCURRID;
		}
//		public Double getFTaxAmountFor() {
//			return FTaxAmountFor;
//		}
//		public void setFTaxAmountFor(Double fTaxAmountFor) {
//			FTaxAmountFor = fTaxAmountFor;
//		}
//		public Double getFNoTaxAmountFor() {
//			return FNoTaxAmountFor;
//		}
//		public void setFNoTaxAmountFor(Double fNoTaxAmountFor) {
//			FNoTaxAmountFor = fNoTaxAmountFor;
//		}
		public Map<String, Object> getFEXCHANGETYPE() {
			if(CustomUtil.isBlank(FEXCHANGETYPE)) return FEXCHANGETYPE = new HashMap<String, Object>();
			return FEXCHANGETYPE;
		}
		public void setFEXCHANGETYPE(Map<String, Object> fEXCHANGETYPE) {
			FEXCHANGETYPE = fEXCHANGETYPE;
		}
		public Double getFExchangeRate() {
			return FExchangeRate;
		}
		public void setFExchangeRate(Double fExchangeRate) {
			FExchangeRate = fExchangeRate;
		}
		public String getFACCNTTIMEJUDGETIME() {
			return FACCNTTIMEJUDGETIME;
		}
		public void setFACCNTTIMEJUDGETIME(String fACCNTTIMEJUDGETIME) {
			FACCNTTIMEJUDGETIME = fACCNTTIMEJUDGETIME;
		}
		
	}
	
	
}
